/**
 * @Copyright:Copyright (c) 2007 - 2023
 * 
 */
package com.tengtong.commons.base;

import com.tengtong.commons.lang.StringUtils;

/**
 * 表示一个 <String, Object> 对
 *
 * @author lin_jinming
 * @since: v1.0
 */
public record KeyValue(
    String key,
    Object value
) {

    public static KeyValue of(String k, Object v) {
        return new KeyValue(k, v);
    }
    
    public String getKey() {
        return key();
    }
    
    public Object getValue() {
        return value;
    }

    /**
     * 使用等号将 key 与 value 连接起来
     */
    public String toString() {
        return join("=");
    }
    
    /**
     * 使用指定的 connector 连接起来
     *
     * @param connector
     * @return
     */
    public String join(String connector) {
        return key + connector + StringUtils.tryToString(value, "");
    }
}
